//
//  Extension+NSDate.swift
//  YMWeiBo
//
//  Created by mimi on 16/7/26.
//  Copyright © 2016年 mimi. All rights reserved.
//

import UIKit

private let df = NSDateFormatter()

private let calendar = NSCalendar.currentCalendar()


extension NSDate{
//    
//    func demo(created_at:String) ->NSDate {
//        
//        let df = NSDateFormatter()
//        
//        df.locale = NSLocale(localeIdentifier: "en_US")
//        df.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
//        let sinaDate = df.dateFromString(created_at)!
//        return sinaDate
//    }
    
    
    
    
    //statusViewModel?.status?.created_at
    //Tue Jul 26 19:07:00 +0800 2016
    
//    func getSinaTimeStr(created_at:String ,df:NSDateFormatter) ->String{
//        let df = NSDateFormatter()
//
//        df.locale = NSLocale(localeIdentifier: "en_US")
//        df.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
//        let sinaDate = df.dateFromString(created_at)!
//
//        let isThisYear = sinaIsThisYear(sinaDate ,df: df)
//        
//        if isThisYear {
//            //            - 如果是今天
//            //                - 小于60秒 显示 刚刚
//            //                    - 大于等于60秒且小于3600秒  显示 xx分钟前
//            //                        - 大于等于3600秒  显示  xx小时前
//            //
//            //            - 如果是昨天
//            //                            - 例如 2016-07-25 10:10:10  显示格式 昨天 10:10
//            //
//            //            - 如果是其他
//            //            - 例如 2016-05-01 10:10:10  显示格式 05月01日 10:10
//            
//            //日历类
//            let calendar = NSCalendar.currentCalendar()
//            if  calendar.isDateInToday(sinaDate) {
//                let s = Int(NSDate().timeIntervalSinceDate(sinaDate))
//                //今天
//                if s < 60{
//                    return "刚刚"
//                }else if s >= 60 && s < 3600{
//                    
//                    return "\(s/60)分钟前"
//                }else{
//                    return "\(s/3600)小时前"
//                }
//            }else if calendar.isDateInToday(sinaDate){
//                //昨天
//                df.dateFormat = "昨天 HH:mm"
//            }else{
//                df.dateFormat = "MM月dd日 HH:mm"
//            }
//            
//        }else{
//            //不是今年
//            df.dateFormat = "yyyy年MM月dd日 HH:mm"
//        }
//        return df.stringFromDate(sinaDate)
//    }
//    
//    
//    //判断是不是今年
//    func sinaIsThisYear(date:NSDate ,df:NSDateFormatter) ->Bool {
////        let df = NSDateFormatter()
//        
//        df.locale = NSLocale(localeIdentifier: "en_US")
//        df.dateFormat = "yyyy"
//        let currentDate = NSDate()
//        let sinaStr = df.stringFromDate(date)
//        let currentStr = df.stringFromDate(currentDate)
//        
//        return sinaStr == currentStr
//        
//    }
    
    
    
    
    
//    ===============================================================
    
//       class func sinaTimeStr(created_at:String) ->NSDate?{
//    
//            df.locale = NSLocale(localeIdentifier: "en_US")
//            df.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
//        
//        
//    
//            let isThisYear = sinaIsThisYear(self)
//    
//            if isThisYear {
//                //            - 如果是今天
//                //                - 小于60秒 显示 刚刚
//                //                    - 大于等于60秒且小于3600秒  显示 xx分钟前
//                //                        - 大于等于3600秒  显示  xx小时前
//                //
//                //            - 如果是昨天
//                //                            - 例如 2016-07-25 10:10:10  显示格式 昨天 10:10
//                //
//                //            - 如果是其他
//                //            - 例如 2016-05-01 10:10:10  显示格式 05月01日 10:10
//    
//                //日历类
//                let calendar = NSCalendar.currentCalendar()
//                if  calendar.isDateInToday(self) {
//                    let s = Int(NSDate().timeIntervalSinceDate(self))
//                    //今天
//                    if s < 60{
//                        return "刚刚"
//                    }else if s >= 60 && s < 3600{
//    
//                        return "\(s/60)分钟前"
//                    }else{
//                        return "\(s/3600)小时前"
//                    }
//                }else if calendar.isDateInToday(self){
//                    //昨天
//                    df.dateFormat = "昨天 HH:mm"
//                }else{
//                    df.dateFormat = "MM月dd日 HH:mm"
//                }
//    
//            }else{
//                //不是今年
//                df.dateFormat = "yyyy年MM月dd日 HH:mm"
//            }
//            return df.stringFromDate(self)
//        }
//    
//    
//        //判断是不是今年
//        func sinaIsThisYear(date:NSDate) ->Bool {
//    //        let df = NSDateFormatter()
//    
//            df.locale = NSLocale(localeIdentifier: "en_US")
//            df.dateFormat = "yyyy"
//            let currentDate = NSDate()
//            let sinaStr = df.stringFromDate(date)
//            let currentStr = df.stringFromDate(currentDate)
//            
//            return sinaStr == currentStr
//            
//        }
    
  //==========================================
    
    
    
    class func sinaDate(createAt: String) -> NSDate?{
        // 设置locate 指定地区 如果不指定 在真机中时间会有问题
        df.locale = NSLocale(localeIdentifier: "en_US")
        // 指定格式
        df.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
        return df.dateFromString(createAt)
    }
    // 获取微博时间字符串
    var sinaDescripitionStr: String {
        
        // 定义一个属性 来判断是否是今年
        let isThisYear = sinaIsThisYear(self)
        // 是今年
        if isThisYear {
            //            - 如果是今天
            //                - 小于60秒 显示 刚刚
            //                    - 大于等于60秒且小于3600秒  显示 xx分钟前
            //                        - 大于等于3600秒  显示  xx小时前
            //
            //            - 如果是昨天
            //                            - 例如 2016-07-25 10:10:10  显示格式 昨天 10:10
            //
            //            - 如果是其他
            //            - 例如 2016-05-01 10:10:10  显示格式 05月01日 10:10
            // 是今天
            if calendar.isDateInToday(self) {
                // 获取当前时间和传入的微博时间差值
                let s = Int(NSDate().timeIntervalSinceDate(self))
                if s < 60 {
                    return "刚刚"
                }else if s >= 60 && s < 3600 {
                    return "\(s/60)分钟前"
                }else {
                    return "\(s/3600)小时前"
                }
            }else if calendar.isDateInYesterday(self) {
                // 是昨天
                df.dateFormat = "昨天 HH:mm"
                
            }else {
                // 其他
                df.dateFormat = "MM月dd日 HH:mm"
            }
        }else {
            // 不是今年
            //            - 例如 2015-01-01 10:10:10
            //            - 显示 格式: 2015年01月01日 10:10
            // 指定时间格式
            df.dateFormat = "yyyy年MM月dd日 HH:mm"
        }
        
        return df.stringFromDate(self)
    }
    
    
    // 判断微博时间是否是今年
    func sinaIsThisYear(sinaDate: NSDate) -> Bool{
        // 设置locate 指定地区 如果不指定 在真机中时间会有问题
        df.locale = NSLocale(localeIdentifier: "en_US")
        // 指定时间格式
        df.dateFormat = "yyyy"
        // 获取当前的日期
        let currentDate = NSDate()
        // 微博日期字符串
        let sinaStr = df.stringFromDate(sinaDate)
        // 当前日期字符串
        let currentStr = df.stringFromDate(currentDate)
        return sinaStr == currentStr
    }

    
}